package com.huiw.archives.modules.sys.service.impl;

import java.util.List;
import java.util.Map;

import javax.transaction.Transactional;

import org.springframework.stereotype.Service;

import com.huiw.archives.common.utils.database.PageParams;
import com.huiw.archives.modules.sys.service.CommonService;

/**
 * hibernate查询对象通用类
 * 
 * @author YC
 *
 */
@Service("CommonService")
public class CommonServiceImpl extends BaseServiceImpl implements CommonService {
	/**
	 * YC 2017年7月6日 下午5:14:28
	 * <p>
	 * Title: load
	 * </p>
	 * <p>
	 * Description:
	 * </p>
	 * 
	 * @param id
	 * @param entity
	 * @return
	 * @see com.huiw.core.org.modules.sys.dao.CommonDao#load(java.lang.String,
	 *      java.lang.Object)
	 */
	@Transactional
	public Object load(String id, Object entity) {
		return baseDao.load(id, entity);
	}

	/**
	 * YC 2017年7月6日 下午5:14:28
	 * <p>
	 * Title: get
	 * </p>
	 * <p>
	 * Description:
	 * </p>
	 * 
	 * @param id
	 * @param entity
	 * @return
	 * @see com.huiw.core.org.modules.sys.dao.CommonDao#get(java.lang.String,
	 *      java.lang.Object)
	 */
	public Object get(String id, Object entity) {
		return null;
	}

	/**
	 * YC 2017年7月6日 下午5:14:28
	 * <p>
	 * Title: findAll
	 * </p>
	 * <p>
	 * Description:
	 * </p>
	 * 
	 * @param entity
	 * @return
	 * @see com.huiw.core.org.modules.sys.dao.CommonDao#findAll(java.lang.Object)
	 */
	public List<Object> findAll(Object entity) {
		return null;
	}

	/**
	 * YC 2017年7月6日 下午5:14:28
	 * <p>
	 * Title: persist
	 * </p>
	 * <p>
	 * Description:
	 * </p>
	 * 
	 * @param entity
	 * @see com.huiw.core.org.modules.sys.dao.CommonDao#persist(java.lang.Object)
	 */
	public void persist(Object entity) {
	}

	/**
	 * YC 2017年7月6日 下午5:14:28
	 * <p>
	 * Title: saveOrUpdate
	 * </p>
	 * <p>
	 * Description:
	 * </p>
	 * 
	 * @param entity
	 * @return
	 * @see com.huiw.core.org.modules.sys.dao.CommonDao#saveOrUpdate(java.lang.Object)
	 */
	public boolean saveOrUpdate(Object entity) {
		return false;
	}

	/**
	 * YC 2017年7月6日 下午5:14:28
	 * <p>
	 * Title: flush
	 * </p>
	 * <p>
	 * Description:
	 * </p>
	 * 
	 * @see com.huiw.core.org.modules.sys.dao.CommonDao#flush()
	 */
	public void flush() {
	}

	/**
	 * YC 2017年7月6日 下午5:14:28
	 * <p>
	 * Title: save
	 * </p>
	 * <p>
	 * Description:
	 * </p>
	 * 
	 * @param object
	 * @return
	 * @throws Exception
	 * @see com.huiw.core.org.modules.sys.dao.CommonDao#save(java.lang.Object)
	 */
	@Transactional
	public boolean save(Object object) throws Exception {
		return baseDao.save(object);
	}

	/**
	 * YC 2017年7月6日 下午5:14:28
	 * <p>
	 * Title: delete
	 * </p>
	 * <p>
	 * Description:
	 * </p>
	 * 
	 * @param object
	 * @return
	 * @see com.huiw.core.org.modules.sys.dao.CommonDao#delete(java.lang.Object)
	 */
	@Transactional
	public boolean delete(Object object) {
		return this.baseDao.delete(object);
	}

	@Override
	@Transactional
	public boolean deletebatch(Object object, String[] ids) throws Exception {
		return this.baseDao.deletebatch(object, ids);
	}

	/**
	 * YC 2017年7月6日 下午5:14:28
	 * <p>
	 * Title: update
	 * </p>
	 * <p>
	 * Description:
	 * </p>
	 * 
	 * @param object
	 * @return
	 * @see com.huiw.core.org.modules.sys.dao.CommonDao#update(java.lang.Object)
	 */
	@Transactional
	public boolean update(Object object) {
		return baseDao.update(object);
	}

	/**
	 * YC 2017年7月6日 下午5:14:28
	 * <p>
	 * Title: query
	 * </p>
	 * <p>
	 * Description:
	 * </p>
	 * 
	 * @param id
	 * @param object
	 * @return
	 * @throws Exception
	 * @see com.huiw.core.org.modules.sys.dao.CommonDao#query(java.lang.String,
	 *      java.lang.Object)
	 */
	@Transactional
	public Object query(String id, Object object) throws Exception {
		return this.baseDao.query(id, object);
	}

	/**
	 * YC 2017年7月6日 下午5:14:28
	 * <p>
	 * Title: query
	 * </p>
	 * <p>
	 * Description:
	 * </p>
	 * 
	 * @param object
	 * @param key
	 * @param value
	 * @return
	 * @see com.huiw.core.org.modules.sys.dao.CommonDao#query(java.lang.Object,
	 *      java.lang.Object[], java.lang.Object[])
	 */
	@Transactional
	public List<Object> query(Object object, Object[] key, Object[] value) {
		return this.baseDao.query(object, key, value);
	}

	/**
	 * YC 2017年7月6日 下午5:14:28
	 * <p>
	 * Title: query
	 * </p>
	 * <p>
	 * Description:
	 * </p>
	 * 
	 * @param object
	 * @return
	 * @see com.huiw.core.org.modules.sys.dao.CommonDao#query(java.lang.Object)
	 */
	public List<Object> query(Object object) {
		return null;
	}

	/**
	 * YC 2017年7月6日 下午5:14:28
	 * <p>
	 * Title: queryOrderDesc
	 * </p>
	 * <p>
	 * Description:
	 * </p>
	 * 
	 * @param object
	 * @param keys
	 * @param maxResults
	 * @return
	 * @see com.huiw.core.org.modules.sys.dao.CommonDao#queryOrderDesc(java.lang.Object,
	 *      java.lang.String, int)
	 */
	public List<Object> queryOrderDesc(Object object, String keys, int maxResults) {
		return null;
	}

	/**
	 * YC 2017年7月6日 下午5:14:28
	 * <p>
	 * Title: queryOrderAsc
	 * </p>
	 * <p>
	 * Description:
	 * </p>
	 * 
	 * @param object
	 * @param keys
	 * @param maxResults
	 * @return
	 * @see com.huiw.core.org.modules.sys.dao.CommonDao#queryOrderAsc(java.lang.Object,
	 *      java.lang.String, int)
	 */
	public List<Object> queryOrderAsc(Object object, String keys, int maxResults) {
		return null;
	}

	/**
	 * YC 2017年7月6日 下午5:14:28
	 * <p>
	 * Title: queryLastRecordId
	 * </p>
	 * <p>
	 * Description:
	 * </p>
	 * 
	 * @param object
	 * @return
	 * @see com.huiw.core.org.modules.sys.dao.CommonDao#queryLastRecordId(java.lang.Object)
	 */
	public Object queryLastRecordId(Object object) {
		return null;
	}

	/**
	 * YC 2017年7月6日 下午5:14:28
	 * <p>
	 * Title: query
	 * </p>
	 * <p>
	 * Description:
	 * </p>
	 * 
	 * @param object
	 * @param curPage
	 * @param max
	 * @param keys
	 * @param values
	 * @return
	 * @see com.huiw.core.org.modules.sys.dao.CommonDao#query(java.lang.Object,
	 *      int, int, java.lang.String, java.lang.String)
	 */
	public List<Object> query(Object object, int curPage, int max, String keys, String values) {
		return null;
	}

	/**
	 * YC 2017年7月6日 下午5:14:28
	 * <p>
	 * Title: query
	 * </p>
	 * <p>
	 * Description:
	 * </p>
	 * 
	 * @param object
	 * @param curPage
	 * @param max
	 * @param key
	 * @param value
	 * @return
	 * @see com.huiw.core.org.modules.sys.dao.CommonDao#query(java.lang.Object,
	 *      int, int, java.lang.Object[], java.lang.Object[])
	 */
	public List<Object> query(Object object, int curPage, int max, Object[] key, Object[] value) {
		return null;
	}

	/**
	 * YC 2017年7月6日 下午5:14:28
	 * <p>
	 * Title: queryRecordNum
	 * </p>
	 * <p>
	 * Description:
	 * </p>
	 * 
	 * @param object
	 * @param keys
	 * @param values
	 * @return
	 * @see com.huiw.core.org.modules.sys.dao.CommonDao#queryRecordNum(java.lang.Object,
	 *      java.lang.String, java.lang.Object)
	 */
	@Transactional
	public double queryRecordNum(Object object, String keys, Object values) {
		return baseDao.queryRecordNum(object, keys, values);
	}

	// 获取该表某类型记录总条数{object表，keys字段，values字段对应值,operator运算符}
	@Override
	@Transactional
	public double queryRecordNum(Object object, String keys, Object values, String operator) {
		return baseDao.queryRecordNum(object, keys, values, operator);
	}

	// 获取该表多条件记录总条数{object表，keys字段，values字段对应值}
	@Override
	@Transactional
	public double queryRecordNumByAND(Object object, String[] keys, Object[] values, String[] operator) {
		return baseDao.queryRecordNumByAND(object, keys, values, operator);
	}

	/**
	 * YC 2017年8月3日 下午3:59:15
	 * <p>
	 * Title: query
	 * </p>
	 * <p>
	 * Description:
	 * </p>
	 * 
	 * @param object
	 * @param params
	 *            分页排序
	 * @return
	 * @throws Exception
	 */
	@Transactional
	public List<Object> query(Object object, PageParams params) throws Exception {
		return baseDao.query(object, params);
	}

	/**
	 * YC 2017年8月3日 下午3:59:15
	 * <p>
	 * Title: query
	 * </p>
	 * <p>
	 * Description:
	 * </p>
	 * 
	 * @param object
	 * @param params
	 *            分页排序
	 * @param whereParams
	 *            查询条件
	 * @return
	 */
	@Transactional
	public List<Object> query(Object object, PageParams params, Map<String, Object> whereParams) throws Exception {
		return baseDao.query(object, params, whereParams);
	}

	/**
	*yangc
	*2017年11月23日 下午12:11:58
	* <p>Title: queryByHql</p> 
	* <p>Description: </p> 
	* @param hql
	* @return
	* @throws Exception 
	* @see com.huiw.archives.modules.sys.service.CommonService#queryByHql(java.lang.String) 
	*/
	@Transactional
	@Override
	public List<Object> queryByHql(String hql) throws Exception {
		return baseDao.queryByHql(hql);
	}
}
